package com.mesystem.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.log4j.Logger;

public class Util {
	
	private static final Logger logger = Logger.getLogger(Util.class);
	private static Map<String, String> mesesValor;
	private static Map<String, String> mesesDesc;
	//private static final SimpleDateFormat formatter = new SimpleDateFormat(Constantes.DATE_FORMAT);
	private static SimpleDateFormat formatterAux;
	static{
		mesesValor = new HashMap<String, String>();
		mesesValor.put("ENERO", "01");
		mesesValor.put("FEBRERO", "02");
		mesesValor.put("MARZO", "03");
		mesesValor.put("ABRIL", "04");
		mesesValor.put("MAYO", "05");
		mesesValor.put("JUNIO", "06");
		mesesValor.put("JULIO", "07");
		mesesValor.put("AGOSTO", "08");
		mesesValor.put("SETIEMBRE", "09");
		mesesValor.put("OCTUBRE", "10");
		mesesValor.put("NOVIEMBRE", "11");
		mesesValor.put("DICIEMBRE", "12");
		
		mesesDesc = new HashMap<String, String>();
		mesesDesc.put("01", "ENERO");
		mesesDesc.put("02", "FEBRERO");
		mesesDesc.put("03", "MARZO");
		mesesDesc.put("04", "ABRIL");
		mesesDesc.put("05", "MAYO");
		mesesDesc.put("06", "JUNIO");
		mesesDesc.put("07", "JULIO");
		mesesDesc.put("08", "AGOSTO");
		mesesDesc.put("09", "SETIEMBRE");
		mesesDesc.put("10", "OCTUBRE");
		mesesDesc.put("11", "NOVIEMBRE");
		mesesDesc.put("12", "DICIEMBRE");
	}
	
	public static String encriptaPassword(String password){
		if(password == null){
			return null;
		}
		return DigestUtils.md5Hex(password);
	}
	
	public static int getAnioActual(){
		Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		return cal.get(Calendar.YEAR);
	}

	public static Date getFecha(String anio, String mes, String dia) {
		logger.info("getFecha");
		logger.info("anio: "+anio);
		logger.info("mes: "+mes);
		logger.info("dia: "+dia);
		Calendar cal = Calendar.getInstance();
		cal.set(Integer.valueOf(anio), Integer.valueOf(mes)-1, Integer.valueOf(dia));
		logger.info("cal.getTime(): "+cal.getTime());
		return cal.getTime();
	}
	
	public static String getValoresFecha(String format, Date fecha) {
		logger.info("getValoresFecha");
		formatterAux = new SimpleDateFormat(format);
		
		return formatterAux.format(fecha);
	}
	
	public static String getValorMes(String val) {
		return mesesValor.get(val);
	}
	
	public static String getDescMes(String val) {
		return mesesDesc.get(val);
	}
	
}
